Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

all: implement eip-7702 set code tx #30078

Open
wants to merge 45 commits into
base: master
Choose a base branch
from

Conversation

lightclient
Copy link
Member

@lightclient lightclient commented Jun 26, 2024

Spec: EIP-7702: Set EOA account code

Add a new transaction type that adds a list of [chain_id, address, nonce, y_parity, r, s] authorization tuples. For each tuple, write a delegation designator (0xef0100 ++ address) to the signing account’s code. All code reading operations must load the code pointed to by the designator.

@lightclient lightclient force-pushed the eip-7702 branch 2 times, most recently from bc22287 to 95524bb Compare June 26, 2024 23:31
@rjl493456442
Copy link
Member

Should we propose another EIP to revamp EIP158? Otherwise, as we discussed previously, the leftover storage of an "empty" EOA could be cleared at the end of block.

@lightclient
Copy link
Member Author

@rjl493456442 I think the proposal which will get accepted for devnet-2 and on will avoid the 158 problem, so it's probably okay to just let it play out. ethereum/EIPs#8677

@lightclient lightclient force-pushed the eip-7702 branch 4 times, most recently from 94389ba to 8578fb7 Compare September 9, 2024 20:24
core/state_transition.go Outdated Show resolved Hide resolved
core/state_transition.go Outdated Show resolved Hide resolved
core/vm/operations_acl.go Outdated Show resolved Hide resolved
core/vm/operations_acl.go Outdated Show resolved Hide resolved
Kya123iu

This comment was marked as spam.

@buddh0

This comment was marked as resolved.

@lightclient
Copy link
Member Author

Rebased to fixed new conflicts. Should be good to go again 👍.

func NewPragueEOFInstructionSetForTesting() JumpTable {
return newPragueEOFInstructionSet()
func NewEOFInstructionSetForTesting() JumpTable {
return newEOFInstructionSetForTesting()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have an exported and unexported version of the same function?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume because we added the testing function just to do fuzz testing, but didn't want to churn core geth code when we decide to delete it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy to remove to consolidate it into the exported function if that's better. Just trying to retain what was there.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exported is named "ForTesting" to signal that nobody should rely on it as official api. Fuzzing yes, and maybe also goevmlab

@rjl493456442
Copy link
Member

Building is failed

@lightclient
Copy link
Member Author

Fixed - PTAL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.